package com.haois.mp.database.module.basic.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;


/**
 * 基础的dao接口，包含添加，删除，修改，查询
 * 
 * @author fanqj
 *
 * @param <T>
 *            实体entity
 * @param <ID>
 *            ID值
 */
public interface IBasicDao<T, ID extends Serializable> extends SuperMapper {
	/**
	 * 新增
	 * 
	 * @param t
	 *            实体
	 * @return 新增的的数量
	 */
	int insert(T t);

	/**
	 * 修改
	 * 
	 * @param record
	 *            修改的实体
	 * @return 修改成功的数量
	 */
	int update(T t);

	/**
	 * 根据ID删除实体
	 * 
	 * @param id
	 * @return
	 */
	int delete(ID id);

	/**
	 * 通过ID查询实体
	 * 
	 * @param id
	 * @return
	 */
	T get(ID id);

	/**
	 * 通过实体的字段条件查询实体
	 * 
	 * @param params
	 * @return
	 */
	@SuppressWarnings("rawtypes")
    List<T> query(Map params);
}
